안녕하세요 에듀이노 개발팀입니다.
라인트레이서가 검정 라인을 인식하면 1이 발생하고 라인을 인식하지 않으면 0이 출력됩니다.
현재 코드에서는 라인트레이서 모듈이 모두 라인을 인식하면 정지하게 코드가 구성이 되어있습니다.
라인을 인식하는 원리를 참고해 코드를 구성해주시기 바랍니다.
현재 제공되고, 사용하는 환경에서는 라인을 벗어나면 정지하게 하는것은 어려울 것으로보입니다.
감사합니다.
[ Original Message ]
라인트레이서가 검정선이 끊어지면 멈추는 거 아닌가요
코드에는 정지가 있는데 정지하지 않고 계속 가네요.
검정선이 없으면 정지하게 한는 방법 문의 드립니다.
알려주세요...제발~~~~~
그리고 val=1 이면 검정 인식 val=0 이면 다른색의 의미 아닌지요?
#include <SoftwareSerial.h>
#include <AFMotor.h>
AF_DCMotor motor_L(1); // 모터드라이버 L293D 1: M1에 연결, 4: M4에 연결
AF_DCMotor motor_R(4);
void setup() {
Serial.begin(9600); // PC와의 시리얼 통신속도
Serial.println("Eduino Smart Car Start!");
// turn on motor
motor_L.setSpeed(230); // 왼쪽 모터의 속도
motor_L.run(RELEASE);
motor_R.setSpeed(230); // 오른쪽 모터의 속도
motor_R.run(RELEASE);
}
void loop() {
int val1 = digitalRead(A0); // 라인센서1
int val2 = digitalRead(A5); // 라인센서2
if (val1 == 0 && val2 == 0) { // 직진
motor_L.run(FORWARD);
motor_R.run(FORWARD);
}
else if (val1 == 0 && val2 == 1) { // 우회전
motor_L.run(FORWARD);
motor_R.run(RELEASE);
}
else if (val1 == 1 && val2 == 0) { // 좌회전
motor_L.run(RELEASE);
motor_R.run(FORWARD);
}
else if (val1 == 1 && val2 == 1) { // 정지
motor_L.run(RELEASE);
motor_R.run(RELEASE);
}
}